
const permission = {
  inserted (el, binding, vnode) {
    const userstr = window.sessionStorage.getItem('user')
    const user = JSON.parse(userstr)
    let btnroles = []

    if (user.permission == 2) {
      // 管理员
      btnroles = ['book:edit', 'book:dele', 'user:edit', 'user:dele']
    } else {
      // 普通学生
      btnroles = ['book:edit', 'book:dele', 'user:edit', 'user:dele']
      // btnroles = [];
    }

    /* el: 指令所绑定的元素，可以用来直接操作DOM。
         binding: 一个对象，包含指令的很多信息。
         vnode: Vue编译生成的虚拟节点。 */
    const { value } = binding
    // 在登录后就可以缓存当前用户的btn权限。
    // 自定义指令的执行函数，，取到登录缓存的按钮权限数组，赋值给全局对象userMsg
    global.ButtonPermissions = btnroles
    if (global.ButtonPermissions && global.ButtonPermissions.indexOf(value) < 0) {
      el.disabled = true
      el.classList.add('is-disabled')
      el.style.pointerEvents = 'none'
    }
  }
}
// 全局注册自定义指令
const install = function (Vue) {
  Vue.directive('permission', permission)
}

if (window.Vue) {
  window.permission = permission
  Vue.use(install); // eslint-disable-line
}

permission.install = install
export default permission
